home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 February / Macworld (1999-02).dmg / Games World / Hot Demos! / DroidWorks demo / dwCD.gob / mission_cog_cap_infrared.cog < prev    next >
Text File  |  1998-09-17  |  6KB  |  247 lines

  1. # DroidWorks
  2. # Infrared capability cog
  3. #
  4. # Infrared ability is in inventory bin 10
  5. # Power is in inventory bin 20
  6.  
  7.  
  8. symbols
  9.  
  10. thing    player
  11. int        effectHandle=-1
  12. int        handle=-1
  13.  
  14. message    activated
  15. message startup
  16. message shutdown
  17. message    pulse
  18. message    timer
  19.  
  20. flex    brite=0.00                local
  21. flex    curlite=0.0                local
  22. int        timermode=0                local
  23. int        set                        local                     
  24. int        step=10                    local
  25. int        steam=0                 local
  26. flex    offset=240.00            local
  27. flex    c_effect=0.0            local
  28. int        speak1=0                local
  29. int        speak2=0                local
  30. int        warn=0                    local
  31. int        lite_max=155            local
  32. sound    on_w=NRGt8InfraOn.wav     local
  33. sound    off_w=NRGt8InfraOff.wav local
  34. sound    loop_w=NRGt8InfraLp.WAV local
  35. #sound   on_c=T8ca004.wav    local
  36. #sound   off_c=T8ca005.wav    local
  37. #sound   brite_c=T8ca008.wav    local
  38. #sound   better_c=T8ca009.wav    local
  39.  
  40. end
  41.  
  42. # ========================================================================================
  43.  
  44. code
  45.  
  46. shutdown:
  47.     if (handle != -1)
  48.         FreeColorEffect(handle);  
  49.     if (effectHandle != -1)
  50.         FreeColorEffect(effectHandle);
  51.     return;
  52.  
  53. startup:
  54.     setpulse(0);
  55.     SetInvActivated(player, 10, 0);
  56.     DisableIRMode();
  57.     brite = 0.00                ;
  58.     curlite = 0.0                 ;
  59.     timermode = 0                  ;
  60.     set                           ;          
  61.     step = 10                        ;
  62.     steam = 0                      ;
  63.     offset = 240.00                  ;
  64.     c_effect = 0.0                   ;
  65.     speak1 = 0                        ;
  66.     speak2 = 0                         ;
  67.     warn = 0                              ;
  68.     lite_max = 155                       ;
  69.  
  70.     
  71.     warn = 0;
  72.     speak1 = 0;
  73.     speak2 = 0;
  74. retrun;
  75.  
  76. activated:
  77.     player = GetSourceRef();
  78.     #print("headflow");
  79.     
  80.     if(GetInv(player, 10))
  81.     {
  82.         if(IsInvActivated(player, 10) == 0)
  83.         {
  84.             if(GetInv(player, 20) > 0)
  85.             {
  86.                 # Print("Infrared activated");
  87.                 SetInvActivated(player, 10, 1);
  88.                 #PlaySoundThing(goggleActivate, player, 1.0, -1, -1, 0x80);
  89.                 effectHandle = newColorEffect(0, 1, 0, 0, 0, 0, 0, 0, 0, 1.0);
  90.                 EnableIRMode(0.8, 1);
  91.                 
  92.                 if (speak1 == 0)
  93.                     { 
  94.                     speak1 = 1;                                                 
  95.                     print("Speak 1");
  96.                     dwPlayCammySpeech(0, "T8ca004.wav", 10, 1);
  97. #                    garbage = playsoundlocal(on_c,1.0,0.0,0);
  98.                     
  99.                     }
  100.                 
  101.                 garbage = playsoundlocal(on_w,1.0,0.0,0);
  102.                 sounder = playsoundlocal(loop_w,0.5,0.0,1);
  103.                 
  104.                 brite = GetSectorAmbient(getthingsector(player))*offset;
  105.                 brite = brite - (brite % 10);     # Rounds the weight to a 10
  106.                 curlite = brite;    #Curlite is the value of the IR, while brite is how brite the sector is.
  107.                 c_effect = curlite ;
  108.                 handle = NewColorEffect(0, 0, 0, 0, 0, 0, c_effect, c_effect, c_effect, 1.0);
  109.                 setpulse(0.25);
  110.             }
  111.             else
  112.             {
  113.                 # Print("No power for Infrared");
  114.                 # PlaySoundThing(goggleDeactivate, player, 1.0, -1, -1, 0x80);
  115.             }
  116.         }
  117.         else
  118.         {
  119.             # Print("Infrared deactivated");
  120.             SetInvActivated(player, 10, 0);
  121.             DisableIRMode();
  122.             #PlaySoundThing(goggleDeactivate, player, 1.0, -1, -1, 0x80);
  123.             if(effectHandle!=-1)
  124.                 freeColorEffect(effectHandle);
  125.             effectHandle = -1;
  126.             garbage = playsoundlocal(off_w,1.0,0.0,0);
  127.             settimer(0);
  128.             if (sounder >-1) {stopsound(sounder,0.5); sounder = -1;}
  129.             if (speak2 == 0)
  130.                 { 
  131.                 speak2 = 1;
  132.                 print("Speak 2");
  133.                 dwPlayCammySpeech(0, "T8ca005.wav", 10, 1);
  134. #                garbage = playsoundlocal(off_c,1.0,0.0,0);
  135.                 }
  136.             else if ((warn == 2))  //if it was too brite but now it okay
  137.                 {
  138.                 timermode = 2;
  139.                 settimer(1);
  140.                 }
  141.             warn = 0;
  142.             SetPulse(0);
  143.             # IR overdrive        
  144.             freeColorEffect(handle);
  145.             effectHandle = -1;
  146.             setpulse(0);
  147.         }
  148.     }
  149.     return;
  150.  
  151. # ........................................................................................
  152. pulse:
  153.     ChangeInv(player, 20, -15);
  154.  
  155.     if(GetInv(player, 20) == 0)
  156.         {
  157.         # Print("No power for Infrared");
  158.         SetInvActivated(player, 10, 0);
  159.         #PlaySoundThing(goggleDeactivate, player, 1.0, -1, -1, 0x80);
  160.         DisableIRMode();
  161.         if(effectHandle!=-1)
  162.         {
  163.             freeColorEffect(effectHandle);
  164.             effectHandle = -1;
  165.         }
  166.         SetPulse(0);
  167.         }
  168.   
  169.     brite = GetSectorAmbient(getthingsector(player))*offset;
  170.     brite = brite - (brite % 10);     # Rounds the weight to a 10
  171.     printint(brite);
  172.     if (curlite > brite)
  173.         {
  174.         curlite = curlite - step;
  175.         setpulse(0.01);
  176.         if (handle != -1)
  177.             FreeColorEffect(handle);
  178.         c_effect = curlite;
  179.         handle = NewColorEffect(0, 0, 0, 0, 0, 0, c_effect, c_effect, c_effect, 1.0);
  180.         }
  181.     else if (curlite < brite)
  182.         {
  183.         curlite = curlite + step;
  184.         setpulse(0.01);
  185.         if (handle != -1)
  186.             FreeColorEffect(handle);  
  187.         c_effect = curlite;
  188.         handle = NewColorEffect(0, 0, 0, 0, 0, 0, c_effect, c_effect, c_effect, 1.0);
  189.         }
  190.     else if (curlite == brite)
  191.         {
  192.         setpulse(0.25);
  193.         }
  194.         
  195.     if ((curlite > lite_max) && (warn == 0))     //if it's too brite and no warning has been issued
  196.         {
  197.         warn = 1;
  198.         timermode = 1;
  199.         settimer(3);         //issue warning
  200.         print("set brite");
  201.         
  202.         }
  203.    if ((curlite < lite_max) && (warn > 0))  //if it was too brite but now it okay
  204.         {
  205.         if (warn == 2)
  206.             {
  207.             print("continue");
  208.             timermode = 2;
  209.             settimer(1);
  210.             warn = 0;
  211.             }
  212.         else
  213.             {
  214.             print("reset");
  215.             warn = 0;
  216.             settimer(0);
  217.             }
  218.         
  219.         }
  220. return;
  221. timer:
  222.      if (timermode == 1)    //too brite
  223.         {
  224.         print("too brite");
  225.         dwPlayCammySpeech(0, "T8ca008.wav", 10, 1);
  226. #        garbage = playsoundlocal(brite_c,1.0,0.0,0);
  227.         warn = 2;
  228.         timermode = 3;
  229.         settimer(12);
  230.         }
  231.      else if (timermode == 2)     //Better
  232.         {
  233.         dwPlayCammySpeech(0, "T8ca009.wav", 10, 1);
  234. #        garbage = playsoundlocal(better_c,1.0,0.0,0);
  235.         print("Better");
  236.         }
  237.      else if (timermode == 3)    // Auto turn off.
  238.         {
  239.         speak2 = 0; // Have cammy speak
  240.         call activated;
  241.         }
  242.         
  243. return;
  244.  
  245.  
  246. end
  247.